#include <gtest/gtest.h>
#include <utils/Detect.h>

struct NoCopyAssignableClass
{
  using self = NoCopyAssignableClass;
  self& operator=(const self&) = delete;
};
using tpl::IsCopyAssignable;
TEST(utils, is_copy_assignable)
{
  EXPECT_EQ(IsCopyAssignable<int>::value, true);
  EXPECT_EQ(std::is_copy_assignable<int>::value, true);
  EXPECT_EQ(IsCopyAssignable<NoCopyAssignableClass>::value, false);
  EXPECT_EQ(std::is_copy_assignable<NoCopyAssignableClass>::value, false);
}